const { verify } = require("../util/jwt");
const { jwtSecret } = require("../config/config.default");
const { User } = require("../model");

module.exports = async (req, res, next) => {
  // 从请求头获取token数据
  let token = req.headers["authorization"];
  token = token ? token.split("Bearer ")[1] : null;
  if (!token) {
    return res.status(401).end();
  }
  // 验证token数据是否有效
  try {
    const decodedToken = await verify(token, jwtSecret);
    // console.log(decodedToken);
    req.user = await User.findById(decodedToken.userId);
    next();
  } catch (error) {
    return res.status(401).end();
  }
  // 无效  --> 响应401状态码
  // 有效 --> 把用户信息读取出来挂载到req对象上继续往后执行
};
